package com.chenfan.mcn.model.rpc;

import com.alibaba.fastjson.annotation.JSONType;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 费用核销回款回调DTO
 *
 * @author wulg
 * @date 2022-02-24
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@JSONType(typeName = BusinessScene.CHARGE_CLEAR)
public class ChargeClearCallback extends AbstractFinanceCallback {

    private static final long serialVersionUID = 2745872116477908064L;

    /**
     * 费用类型
     */
    @NotNull(message = "费用类型不能为空")
    private Integer chargeType;

    /**
     * 核销单号
     */
    @NotBlank(message = "核销单号不能为空")
    private String clearNo;

    /**
     * 本次回款金额
     */
    @NotNull(message = "本次回款金额不能为空")
    private BigDecimal paybackAmount;

    /**
     * 补偿金额
     */
    private BigDecimal diffAmount;

    /**
     * 累计回款金额
     */
    private BigDecimal totalPaybackAmount;

    /**
     * 费用来源单号
     */
    @NotBlank(message = "费用来源单号不能为空")
    private String sourceBillCode;

    /**
     * 费用来源明细
     */
    private String chargeSourceDetail;


    /**
     * 最近回款日期-若不传的话，取当前系统日期
     */
    private Date paybackDate;

    /**
     * 是否强制作废（冲销）
     */
    private Boolean isChargeAgainst;
}
